<?php

namespace App\Admin\Actions\Grid\RowActions;

use Dcat\Admin\Grid\RowAction;
use Illuminate\Http\Request;

class DeleteActions extends RowAction
{
    protected $model;

    public function __construct(string $model = null)
    {
        $this->model = $model;
    }

    /**
     * 标题
     *
     * @return string
     */
    public function title()
    {
        $label = trans('admin.delete');

        return '<i class="feather icon-alert-triangle text-danger"></i> <span class="text-danger">' . $label . '</span> &emsp;';
    }

    /**
     * 设置确认弹窗信息，如果返回空值，则不会弹出弹窗
     *
     * 允许返回字符串或数组类型
     *
     * @return array|string|void
     */
    public function confirm()
    {
        // return [
        //     // 确认弹窗 title
        //     "您确定要删除这行数据吗？",
        //     // 确认弹窗 content
        //     $this->row->id,
        // ];
    }

    /**
     * 需要执行的JS代码.
     *
     * @return string|void
     */
    protected function script()
    {
        return <<<JS

$('.custo-delete').click(function(){
//    layer.close(layer.index);
window.location.reload();
})

JS;
    }

    /**
     * @return string
     */
    protected function html()
    {
        $this->defaultHtmlAttribute('href', 'javascript:void(0)');
        $this->appendHtmlAttribute('class', 'custo-delete');
        return <<<HTML
<a {$this->formatHtmlAttributes()}  >{$this->title()}</a>
HTML;
    }



    /**
     * 处理请求
     *
     * @param Request $request
     *
     * @return \Dcat\Admin\Actions\Response
     */
    public function handle(Request $request)
    {
        // 获取当前行ID
        $id = $this->getKey();

        // 获取 parameters 方法传递的参数
        $username = $request->get('id');
        $model = $request->get('model');

        // 复制数据
        $model::find($id)->delete();

        // 返回响应结果并刷新页面
        return $this->response()->success("删除成功")->refresh();
    }

    /**
     * 设置要POST到接口的数据
     *
     * @return array
     */
    public function parameters()
    {
        return [
            // 发送当前行 id 字段数据到接口
            'id' => $this->row->id,
            // 把模型类名传递到接口
            'model' => $this->model,
        ];
    }
}
